const { Controller } = require('egg');

module.exports = class UsersController extends Controller {

  constructor(ctx) {
    super(ctx);
    this.createRule = {
      accesstoken: 'string',
      title: 'string',
      tab: {
        type: 'enum',
        values: [ 'ask', 'share', 'job' ],
        required: false,
      },
      content: 'string',
    };
  }

  // 创建资源
  async create() {
    const { ctx, service } = this;

    // TODO 参数校验
    const params = ctx.request.body;
    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    console.log(ctx.request.body); // 获取POST提交的body信息，Content-Type=x-www-form-urlencoded

    // DO 调用Service
    const data = await service.user.create(params);
    // DO 调用格式转换器
    ctx.helper.success(ctx, '创建资源成功', data);
  }

  // 删除资源(soft delete)
  async destroy() {
    const { ctx, service } = this;

    // TODO 参数校验
    const params = ctx.request.query.uuid;
    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    console.log(ctx.request.body); // 获取POST提交的body信息，Content-Type=x-www-form-urlencoded

    // DO 调用Service
    const data = await service.user.delete(params);
    // DO 调用格式转换器
    ctx.helper.success(ctx, '删除资源成功', data);
  }

  // 更新资源
  async update() {
    const { ctx, service } = this;

    // TODO 参数校验
    const params = ctx.request.body;
    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    console.log(ctx.request.body); // 获取POST提交的body信息，Content-Type=x-www-form-urlencoded

    // DO 调用Service
    const data = await service.user.update(params);
    // DO 调用格式转换器
    ctx.helper.success(ctx, '更新资源成功', data);
  }

  // 查找资源信息
  async show() {
    const { ctx, service } = this;

    // TODO 参数校验
    const params = ctx.request.query.uuid;
    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    console.log(ctx.request.body); // 获取POST提交的body信息，Content-Type=x-www-form-urlencoded

    // DO 调用Service
    const data = await service.user.show(params);
    // DO 调用格式转换器
    ctx.helper.success(ctx, '获取指定资源成功', data);
  }

  // 显示资源列表
  async index() {
    const { ctx, service } = this;

    // TODO 参数校验
    const params = ctx.request.query;
    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    console.log(ctx.request.body); // 获取POST提交的body信息，Content-Type=x-www-form-urlencoded

    // DO 调用Service
    const data = await service.user.index(params);
    // DO 调用格式转换器
    ctx.helper.success(ctx, '获取资源列表成功', data);
  }


/*
  // 混合开发：显示新建资源页面
  async new() {
    const { ctx } = this;

    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    this.ctx.body = '创建页面（可选）';
  }

  // 混合开发：显示编辑资源页面
  async edit() {
    const { ctx } = this;

    console.log(ctx.request.query); // 获取GET请求传递的Query参数
    this.ctx.body = '修改页面（可选）';
  }
*/

};
